package com.java.jvm.loader;

class ClassD{
    private static int a=10;//这里的a=10是在类加载过程中的初始化阶段完成的。
    private static final int b=20;//这里的a=20是在类加载过程中的准备阶段完成的。
    private static int c;
    private static final int d;//final修饰的变量要么定义时赋值，要么静态代码块赋值。
    static{
        c=30;
        d=40;
    }
    private static ClassD instance=new ClassD();//准备阶段instance的值为null
    public ClassD(){
        System.out.println("ClassD().instance="+instance);//null
    }
    static{
        System.out.println("static.instance="+instance);
    }
}
public class ClassInitTests {

    public static void main(String[] args) throws ClassNotFoundException {
         Class.forName("com.java.jvm.loader.ClassD");
    }

}
